[자바]백준 1526 가장 큰 금민수
2020-07-19
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
2초 | 256MB | 2881 | 1566 | 1333 | 57.656% |
문제
은민이는 4와 7을 좋아하고, 나머지 숫자는 싫어한다. 금민수는 어떤 수가 4와 7로만 이루어진 수를 말한다.
N이 주어졌을 때, N보다 작거나 같은 금민수 중 가장 큰 것을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 N보다 작거나 같은 금민수 중 가장 큰 것을 출력한다.
예제 입력1
100
예제 출력1
77
풀이
주어진 수부터 4까지 탐색하며 4와 7로 이루어져있는지 확인한다. 조건을 충족하면 해당 값을 출력하고 종료한다.
제출 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
// init
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
// solve
for(int i = n; i >= 4; i--) {
String stringN = Integer.toString(i);
boolean isFourOrSeven = true;
for(int j = 0; j < stringN.length(); j++) {
if(!(stringN.charAt(j) == '4' || stringN.charAt(j) == '7')) {
isFourOrSeven = false;
break;
}
}
if(isFourOrSeven) {
bw.append(Integer.toString(i));
break;
} else {
continue;
}
}
// print
bw.flush();
}
}